1. Field of the Invention
The present invention concerns a fast method for utilizing look-up tables to obtain corrected color values from input color values.
2. Description of the Related Art
Current digital color printing systems are capable of printing pixels representing color image data onto a recording medium. Prior to printing pixels, however, it is generally desirable to perform corrections on the color image data in order to compensate for print head characteristics, or to adapt the data to a desired printing mode. Such corrections can be performed using on-the-fly calculations or using pre-calculated look-up tables. However, corrected values are often experimentally derived as well as non-linear. Accordingly, on-the-fly calculations in such cases are computationally-intensive and therefore require significant resources and time.
Therefore, look-up tables are often used to perform color correction. Specifically, four separate look-up tables are used, one for each of cyan, magenta, yellow and black components of the image data, with each look-up table containing corrected color values corresponding to each potential input color value. In many applications, multiple sets of cyan, magenta, yellow, and black look-up tables are stored, and the appropriate set of look-up tables is selected based on detected conditions. Once a set of look-up tables has been selected, color correction for a given pixel merely requires using each of the input color values as an index to a corresponding look-up table, from which a corresponding corrected color value is obtained. For example, an input cyan value would be used to address a selected cyan look-up table, from which a corrected cyan value corresponding to the input cyan value is obtained.
As described above, color correction using look-up tables often proceeds faster than mathematical calculation of corrected values in real time. However, such look-up table processing requires a look-up function to be performed for each color component of each pixel in input image data. Moreover, as related processing becomes increasingly faster, memory look-ups are more frequently becoming a limiting factor to system performance. For instance, when performing a look-up using the Pentium processor, there is, among other delays, a processor pause for one instruction (e.g. an address grid interlock) period between loading a value into a register and looking up the value.
Accordingly, what is needed is a faster method for obtaining corrected color values from input color values.